//

#ifndef _BASE_HPP
#define _BASE_HPP

#include <wtk/wtk.hpp>



// [FIXME] logging
#include <stdio.h>

#define GLT_LOG(f, lvl, msg...) do {            \
    fprintf((f), "gltest:%s:%d:%s ",            \
            __FILE__, __LINE__, (lvl));         \
    fprintf((f), msg);                          \
    fprintf((f), "\n");                         \
  } while (0)

#define GLT_TRACE(msg...) GLT_LOG(stdout, "", msg)

#define GLT_WARNING(msg...) GLT_LOG(stderr, "WARNING:", msg)

#define GLT_ERROR(msg...) GLT_LOG(stderr, "ERROR:", msg)

#define GLT_FATAL(msg...) do {                  \
    GLT_ERROR(msg);                             \
    abort();                                    \
  } while (0)

#define GLT_ASSERT(expr) do {                       \
    if (!(expr)) {                                  \
      GLT_FATAL("ASSERTION FAILED: `" #expr "'");   \
    }                                               \
  } while (0)



#endif
